package com.green.common.fusioncharts;

import java.util.ArrayList;
import java.util.List;
/**
 * 曲线工具类
 * @author yinyuqiao
 * @time 2013-1-7 上午11:23:47
 */
public class ChartTool {
	/**
	 * 曲线图的各个点(点连接成曲线图)
	 * @param rate
	 * @return
	 */
	public Points[] getRateCurvePoints(List<RateCurveObj> rate) { // 利率走势 坐标点
		int size = rate.size();
		Points[] pointList = new Points[size];
		int i = 0;
		for (RateCurveObj obj : rate) {
			pointList[i] = new Points();
			pointList[i].setX(i);
			pointList[i].setY(obj.getYield());
			i++;
		}
		
		return pointList;
	}
	/**
	 * 整体绩效
	 * 横标--年份
	 * 曲线图横标
	 * xq	
	 */
	public List<ChartXLabel> getXlabel(List<RateCurveObj> list) { // 横标
		int size = list.size();
		List<ChartXLabel> chartlist = new ArrayList<ChartXLabel>();
		ChartXLabel chart;
		int n=size/10;  
		int j=0;
		for(int i=0;i<size;){
			chart = new ChartXLabel();
			chart.setName(list.get(i).getTdate());
			if(j==0){
				chart.setValue(j);
				chartlist.add(chart);
				if(n>0){
					i=i+n;
					j=j+n;
				}else{
					i++;
					j++;
				}
			}else{
				chart.setValue(j);
				chartlist.add(chart);
				if(n>0){
					i=i+n;
					j=j+n;
				}else{
					i++;
					j++;
				}
			}
		}
		return chartlist;
	}
	/**
	 * 信用价差
	 * 横标--年限0年-30年
	 * 曲线图横标
	 * xq
	 */
	public List<ChartXLabel> getXlabel1(List<RateCurveObj> list) { // 横标
		int size = list.size();
		List<ChartXLabel> chartlist = new ArrayList<ChartXLabel>();
		ChartXLabel chart;
		int num = size/6;
		for(int i=0;i<7;i++){
			chart = new ChartXLabel();
			chart.setName(i*5+"年");
			chart.setValue(i*num);
			chartlist.add(chart);
		}
		return chartlist;
	}
	/**
	 * 核心存款
	 * 横标--根据points[]获取横标
	 */
	public List<ChartXLabel> getXlabelByPoints(Points[] p){
		int size = p.length;
		List<ChartXLabel> chartlist = new ArrayList<ChartXLabel>();
		ChartXLabel chart = null;
		int n=size/8;  
		int j=0;
		int date = 2000;
		for(int i=0;i<size;){
			chart = new ChartXLabel();
			chart.setName(date+"-"+"01"+"-"+"01");
			chart.setValue(i);
			if(j==0){
				chart.setValue(j);
				chartlist.add(chart);
				if(n>0){
					i=i+n;
					j=j+n;
				}else{
					i++;
					j++;
				}
			}else{
				chart.setValue(j);
				chartlist.add(chart);
				if(n>0){
					i=i+n;
					j=j+n;
				}else{
					i++;
					j++;
				}
			}
			date++;
		}
		
		return chartlist;
	}

	public List<ChartXLabel> getXlabelByPo(double[] p){
		List<ChartXLabel> chartlist = new ArrayList<ChartXLabel>();
		ChartXLabel chart = null;
		int max = (int) Math.round(Math.ceil(ArrayTool.getMax(p)));
		int min = (int) Math.round(Math.floor(ArrayTool.getMini(p)));
		for (int i = min; i < max; i++) {
			chart = new ChartXLabel();
			chart.setName(String.valueOf(i));
			chart.setValue(i);
			chartlist.add(chart);
		}
		return chartlist;
	}
	/**
	 * 获取标签与値
	 * 柱状图、饼图等
	 * xq
	 */
	public List<ChartXLabel> getLabelValue(List<RateCurveObj> list) { // 横标
		@SuppressWarnings("unused")
		int size = list.size();
		List<ChartXLabel> chartlist = new ArrayList<ChartXLabel>();

		for (RateCurveObj obj : list) {
			ChartXLabel label= new ChartXLabel();
			label.setName(obj.getTdate());
			label.setValue(obj.getYield());
			chartlist.add(label);
		}
		return chartlist;
	}
	
}
